package com.newworld.basketballfire.main.impl;

import com.newworld.basketballfire.main.bean.DuesListParam;
import com.newworld.basketballfire.main.business.DuesBusiness;
import com.newworld.basketballfire.main.utils.CommonUtils;
import com.newworld.basketballfire.service.delegate.DuesServiceDelegate;
import com.newworld.basketballfire.service.exception.ServiceException;
import com.newworld.basketballfire.service.model.Dues;
import com.newworld.basketballfire.service.model.DuesParams;
import com.newworld.basketballfire.service.model.ListResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * Created by George on 2019/3/3.
 * DuesServiceDelegateImpl
 */
@Component
public class DuesServiceDelegateImpl implements DuesServiceDelegate {

    @Autowired
    private DuesBusiness duesBusiness;

    @Override
    public Dues addDues(DuesParams duesParams) throws ServiceException {
        Dues dues = getDuesByDuesPrams(duesParams);
        return duesBusiness.addDues(dues);
    }

    @Override
    public Dues updateDues(String id, DuesParams duesParams) throws ServiceException {
        Dues dues = getDuesByDuesPrams(duesParams);
        dues.setId(id);
        return duesBusiness.updateDues(dues);
    }

    @Override
    public void deleteDues(String id) throws ServiceException {
        duesBusiness.deleteDues(id);
    }

    @Override
    public Dues getDues(String id) throws ServiceException {
        return duesBusiness.getDues(id);
    }

    @Override
    public ListResult<Dues> getDuesList(String id, String activityId, String userId, int pageNo, int pageSize) throws ServiceException {
        DuesListParam duesListParam = new DuesListParam();
        duesListParam.setId(id);
        duesListParam.setActivityId(activityId);
        duesListParam.setUserId(userId);
        duesListParam.setPageNo(pageNo);
        duesListParam.setPageSize(pageSize);
        duesListParam.setCurIndex(CommonUtils.getCurIndex(pageNo, pageSize));
        return duesBusiness.getDuesList(duesListParam);
    }

    private Dues getDuesByDuesPrams(DuesParams duesParams) {
        Dues dues = new Dues();
        dues.setActivityId(duesParams.getActivityId());
        dues.setDate(duesParams.getDate());
        dues.setDues(duesParams.getDues());
        dues.setInfo(duesParams.getInfo());
        dues.setType(duesParams.getType());
        dues.setUserId(duesParams.getUserId());
        return dues;
    }
}
